.demo21 div {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 80px;
  height: 80px;
  opacity: 0.3;
  background: #344966;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(1, 1);
  animation: demo21 1s linear infinite;
  animation-play-state: paused;
}
.demo21 div:nth-child(1) {
  animation-delay: 0s;
}
.demo21 div:nth-child(2) {
  animation-delay: -0.2s;
}
.demo21 div:nth-child(3) {
  animation-delay: -0.4s;
}
@keyframes demo21 {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0, 0);
  }
  50% {
    opacity: 0.8;
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1, 1);
  }
}
.demo21.active div {
  animation-play-state: running;
}
.demo22 {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.demo22 div {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 80px;
  height: 80px;
  border-radius: 50%;
  opacity: 0.3;
  background: #344966;
  animation: demo22 2s ease-in-out infinite;
  animation-play-state: paused;
}
.demo22 div:nth-child(1) {
  animation-delay: -1s;
}
@keyframes demo22 {
  0% {
    width: 0;
    height: 0;
  }
  50% {
    width: 80px;
    height: 80px;
  }
  100% {
    width: 0;
    height: 0;
  }
}
.demo22.active div {
  animation-play-state: running;
}
.demo23 {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.demo23 div {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  border-radius: 50%;
  opacity: 1;
  border: 3px solid #344966;
  box-sizing: border-box;
  animation: demo23 1s linear infinite;
  animation-play-state: paused;
}
@keyframes demo23 {
  0% {
    opacity: 1;
    width: 0;
    height: 0;
  }
  100% {
    opacity: 0;
    width: 80px;
    height: 80px;
  }
}
.demo23.active div {
  animation-play-state: running;
}
.demo24 {
  position: absolute;
  width: 100%;
  height: 100%;
  left: 0;
  top: 0;
}
.demo24 div {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  border-radius: 50%;
  opacity: 1;
  border: 3px solid #344966;
  box-sizing: border-box;
  animation: demo24 1s linear infinite;
  animation-play-state: paused;
}
.demo24 div:nth-child(1) {
  animation-delay: 0s;
}
.demo24 div:nth-child(2) {
  animation-delay: -0.2s;
}
.demo24 div:nth-child(3) {
  animation-delay: -0.4s;
}
@keyframes demo24 {
  0% {
    opacity: 1;
    width: 0;
    height: 0;
  }
  100% {
    opacity: 0;
    width: 80px;
    height: 80px;
  }
}
.demo24.active div {
  animation-play-state: running;
}
.demo25 {
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.demo25 div {
  position: absolute;
  width: 100%;
  height: 20px;
  left: 0;
  top: 40px;
}
.demo25 div::before {
  content: "";
  position: absolute;
  opacity: 1;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #344966;
  left: 0;
  top: 0;
  animation: demo25 1.4s linear infinite;
  animation-play-state: paused;
}
.demo25 div:nth-child(1) {
  transform: rotate(0deg);
}
.demo25 div:nth-child(1)::before {
  animation-delay: 0s;
}
.demo25 div:nth-child(2) {
  transform: rotate(45deg);
}
.demo25 div:nth-child(2)::before {
  animation-delay: -0.2s;
}
.demo25 div:nth-child(3) {
  transform: rotate(90deg);
}
.demo25 div:nth-child(3)::before {
  animation-delay: -0.4s;
}
.demo25 div:nth-child(4) {
  transform: rotate(135deg);
}
.demo25 div:nth-child(4)::before {
  animation-delay: -0.6s;
}
.demo25 div:nth-child(5) {
  transform: rotate(180deg);
}
.demo25 div:nth-child(5)::before {
  animation-delay: -0.8s;
}
.demo25 div:nth-child(6) {
  transform: rotate(225deg);
}
.demo25 div:nth-child(6)::before {
  animation-delay: -1s;
}
.demo25 div:nth-child(7) {
  transform: rotate(270deg);
}
.demo25 div:nth-child(7)::before {
  animation-delay: -1.2s;
}
.demo25 div:nth-child(8) {
  transform: rotate(315deg);
}
.demo25 div:nth-child(8)::before {
  animation-delay: -1.4s;
}
@keyframes demo25 {
  0% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 0;
    width: 0;
    height: 0;
  }
  100% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
}
.demo25.active div::before {
  animation-play-state: running;
}
.demo26 {
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.demo26 div {
  position: absolute;
  width: 100%;
  height: 20px;
  left: 0;
  top: 40px;
}
.demo26 div::before {
  content: "";
  position: absolute;
  opacity: 1;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #344966;
  left: 0;
  top: 0;
  animation: demo26 1.4s linear infinite;
  animation-play-state: paused;
}
.demo26 div:nth-child(1) {
  transform: rotate(0deg);
}
.demo26 div:nth-child(1)::before {
  animation-delay: -1.4s;
}
.demo26 div:nth-child(2) {
  transform: rotate(45deg);
}
.demo26 div:nth-child(2)::before {
  animation-delay: -1.2s;
}
.demo26 div:nth-child(3) {
  transform: rotate(90deg);
}
.demo26 div:nth-child(3)::before {
  animation-delay: -1s;
}
.demo26 div:nth-child(4) {
  transform: rotate(135deg);
}
.demo26 div:nth-child(4)::before {
  animation-delay: -0.8s;
}
.demo26 div:nth-child(5) {
  transform: rotate(180deg);
}
.demo26 div:nth-child(5)::before {
  animation-delay: -0.6s;
}
.demo26 div:nth-child(6) {
  transform: rotate(225deg);
}
.demo26 div:nth-child(6)::before {
  animation-delay: -0.4s;
}
.demo26 div:nth-child(7) {
  transform: rotate(270deg);
}
.demo26 div:nth-child(7)::before {
  animation-delay: -0.2s;
}
.demo26 div:nth-child(8) {
  transform: rotate(315deg);
}
.demo26 div:nth-child(8)::before {
  animation-delay: 0s;
}
@keyframes demo26 {
  0% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 0;
    width: 0;
    height: 0;
  }
  100% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
}
.demo26.active div::before {
  animation-play-state: running;
}
.demo27 {
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.demo27 div {
  position: absolute;
  width: 100%;
  height: 20px;
  left: 0;
  top: 40px;
}
.demo27 div::before {
  content: "";
  position: absolute;
  opacity: 1;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #344966;
  left: 0;
  top: 0;
  animation: demo27 1.4s linear infinite;
  animation-play-state: paused;
}
.demo27 div:nth-child(1) {
  transform: rotate(0deg);
}
.demo27 div:nth-child(1)::before {
  animation-delay: -1.4s;
}
.demo27 div:nth-child(2) {
  transform: rotate(45deg);
}
.demo27 div:nth-child(2)::before {
  animation-delay: -1.2s;
}
.demo27 div:nth-child(3) {
  transform: rotate(90deg);
}
.demo27 div:nth-child(3)::before {
  animation-delay: -1s;
}
.demo27 div:nth-child(4) {
  transform: rotate(135deg);
}
.demo27 div:nth-child(4)::before {
  animation-delay: -0.8s;
}
.demo27 div:nth-child(5) {
  transform: rotate(180deg);
}
.demo27 div:nth-child(5)::before {
  animation-delay: -0.6s;
}
.demo27 div:nth-child(6) {
  transform: rotate(225deg);
}
.demo27 div:nth-child(6)::before {
  animation-delay: -0.4s;
}
.demo27 div:nth-child(7) {
  transform: rotate(270deg);
}
.demo27 div:nth-child(7)::before {
  animation-delay: -0.2s;
}
.demo27 div:nth-child(8) {
  transform: rotate(315deg);
}
.demo27 div:nth-child(8)::before {
  animation-delay: 0s;
}
@keyframes demo27 {
  0% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 0.3;
    width: 10px;
    height: 10px;
  }
  100% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
}
.demo27.active div::before {
  animation-play-state: running;
}
.demo28 {
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  animation: demo28_2 4.2s linear infinite;
  animation-play-state: paused;
}
.demo28 div {
  position: absolute;
  width: 100%;
  height: 20px;
  left: 0;
  top: 40px;
}
.demo28 div::before {
  content: "";
  position: absolute;
  opacity: 1;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #344966;
  left: 0;
  top: 0;
  animation: demo28_1 1.4s linear infinite;
  animation-play-state: paused;
}
.demo28 div:nth-child(1) {
  transform: rotate(0deg);
}
.demo28 div:nth-child(1)::before {
  animation-delay: -1.4s;
}
.demo28 div:nth-child(2) {
  transform: rotate(45deg);
}
.demo28 div:nth-child(2)::before {
  animation-delay: -1.2s;
}
.demo28 div:nth-child(3) {
  transform: rotate(90deg);
}
.demo28 div:nth-child(3)::before {
  animation-delay: -1s;
}
.demo28 div:nth-child(4) {
  transform: rotate(135deg);
}
.demo28 div:nth-child(4)::before {
  animation-delay: -0.8s;
}
.demo28 div:nth-child(5) {
  transform: rotate(180deg);
}
.demo28 div:nth-child(5)::before {
  animation-delay: -0.6s;
}
.demo28 div:nth-child(6) {
  transform: rotate(225deg);
}
.demo28 div:nth-child(6)::before {
  animation-delay: -0.4s;
}
.demo28 div:nth-child(7) {
  transform: rotate(270deg);
}
.demo28 div:nth-child(7)::before {
  animation-delay: -0.2s;
}
.demo28 div:nth-child(8) {
  transform: rotate(315deg);
}
.demo28 div:nth-child(8)::before {
  animation-delay: 0s;
}
@keyframes demo28_1 {
  0% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 0.3;
    width: 10px;
    height: 10px;
  }
  100% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
}
@keyframes demo28_2 {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(-360deg);
  }
}
.demo28.active {
  animation-play-state: running;
}
.demo28.active div::before {
  animation-play-state: running;
}
.demo29 {
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.demo29 div {
  position: absolute;
  width: 100%;
  height: 20px;
  left: 0;
  top: 40px;
}
.demo29 div::before {
  content: "";
  position: absolute;
  opacity: 1;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #344966;
  left: 0;
  top: 0;
  animation: demo29 1.4s linear infinite;
  animation-play-state: paused;
}
.demo29 div:nth-child(1) {
  transform: rotate(0deg);
}
.demo29 div:nth-child(1)::before {
  animation-delay: 0s;
}
.demo29 div:nth-child(2) {
  transform: rotate(45deg);
}
.demo29 div:nth-child(2)::before {
  animation-delay: -0.2s;
}
.demo29 div:nth-child(3) {
  transform: rotate(90deg);
}
.demo29 div:nth-child(3)::before {
  animation-delay: -0.4s;
}
.demo29 div:nth-child(4) {
  transform: rotate(135deg);
}
.demo29 div:nth-child(4)::before {
  animation-delay: -0.6s;
}
.demo29 div:nth-child(5) {
  transform: rotate(180deg);
}
.demo29 div:nth-child(5)::before {
  animation-delay: -0.8s;
}
.demo29 div:nth-child(6) {
  transform: rotate(225deg);
}
.demo29 div:nth-child(6)::before {
  animation-delay: -1s;
}
.demo29 div:nth-child(7) {
  transform: rotate(270deg);
}
.demo29 div:nth-child(7)::before {
  animation-delay: -1.2s;
}
.demo29 div:nth-child(8) {
  transform: rotate(315deg);
}
.demo29 div:nth-child(8)::before {
  animation-delay: -1.4s;
}
@keyframes demo29 {
  0% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 0.3;
    width: 10px;
    height: 10px;
  }
  100% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
}
.demo29.active div::before {
  animation-play-state: running;
}
.demo30 {
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  animation: demo30_2 4.2s linear infinite;
  animation-play-state: paused;
}
.demo30 div {
  position: absolute;
  width: 100%;
  height: 20px;
  left: 0;
  top: 40px;
}
.demo30 div::before {
  content: "";
  position: absolute;
  opacity: 1;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #344966;
  left: 0;
  top: 0;
  animation: demo30_1 1.4s linear infinite;
  animation-play-state: paused;
}
.demo30 div:nth-child(1) {
  transform: rotate(0deg);
}
.demo30 div:nth-child(1)::before {
  animation-delay: 0s;
}
.demo30 div:nth-child(2) {
  transform: rotate(45deg);
}
.demo30 div:nth-child(2)::before {
  animation-delay: -0.2s;
}
.demo30 div:nth-child(3) {
  transform: rotate(90deg);
}
.demo30 div:nth-child(3)::before {
  animation-delay: -0.4s;
}
.demo30 div:nth-child(4) {
  transform: rotate(135deg);
}
.demo30 div:nth-child(4)::before {
  animation-delay: -0.6s;
}
.demo30 div:nth-child(5) {
  transform: rotate(180deg);
}
.demo30 div:nth-child(5)::before {
  animation-delay: -0.8s;
}
.demo30 div:nth-child(6) {
  transform: rotate(225deg);
}
.demo30 div:nth-child(6)::before {
  animation-delay: -1s;
}
.demo30 div:nth-child(7) {
  transform: rotate(270deg);
}
.demo30 div:nth-child(7)::before {
  animation-delay: -1.2s;
}
.demo30 div:nth-child(8) {
  transform: rotate(315deg);
}
.demo30 div:nth-child(8)::before {
  animation-delay: -1.4s;
}
@keyframes demo30_1 {
  0% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
  20% {
    opacity: 1;
  }
  80% {
    opacity: 0.3;
    width: 10px;
    height: 10px;
  }
  100% {
    opacity: 1;
    width: 20px;
    height: 20px;
  }
}
@keyframes demo30_2 {
  0% {
    transform: translate(-50%, -50%) rotate(0deg);
  }
  100% {
    transform: translate(-50%, -50%) rotate(360deg);
  }
}
.demo30.active {
  animation-play-state: running;
}
.demo30.active div::before {
  animation-play-state: running;
}
